package stream;

import java.util.ArrayList;
import java.util.Collections;
import java.util.TreeSet;
import java.util.stream.Stream;

public class LIANXI {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list, "猪八戒", "猪九节", "孙悟空", "唐僧");
        ArrayList<String> names = new ArrayList<>();

        for (String name : list) {
            if (name.startsWith("猪")) {
                names.add(name);
            }
        }
        for (String name : names) {
            System.out.println(name);
        }
        //===========stream============
        System.out.println("====================");
        //需要把集合变成流
        //filter()对一个一个的元素进行操作
        //s  表示流中的一个元素
        //s.startsWith("猪")表示条件
        //满足此条件的元素会被放入新的流中  zhustream
        Stream<String> zhustream = list.stream().filter((s) -> {
            return s.startsWith("猪");
        });
//        Stream<String> zhustream = list.stream().filter((s) -> s.startsWith("猪"));
        //注意：同一个流只能呗操作一次
        zhustream.forEach(x-> System.out.println(x));
        zhustream.forEach(System.out::println);
        //=======上面两个操作只能合成一个操作=======
      list.stream().filter(s-> {
            return s.startsWith("猪");
        }).forEach(System.out::println);

      //继续优化
        System.out.println("====继续优化====");
        list.stream().filter((s)->s.startsWith("猪")).forEach(System.out::println);
    }
}
